﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OBL1_DiseñoDeAplicaciones.ObjetosDeNegocio;
using OBL1_DiseñoDeAplicaciones.Utilidades;

namespace OBL1_DiseñoDeAplicaciones.Interfaz
{
    public partial class Proyecto_Listado : Form,IObservador
    {
        private Empresa _empresa;
        private const string _modoOperativoModificar = "Modificar";
        private const string _modoOperativoAgregar = "Agregar";
        private const string _modoOperativoVer = "Ver";
        public Proyecto_Listado()
        {
            InitializeComponent();
            _empresa = Empresa.GetInstance();
            _cargarGrilla();
        }

        private void _cargarGrilla(){
            this.dgvProyectos.AutoGenerateColumns = false;
            this.dgvProyectos.DataSource = null;
            this.dgvProyectos.DataSource = _empresa.Proyectos;
        }

        private void btnNuevoProyecto_Click(object sender, EventArgs e)
        {
            Proyecto_Alta ventana = new Proyecto_Alta(this);
            ventana.ShowDialog();
        }

        private void btnBuscarProyecto_Click(object sender, EventArgs e)
        {

        }

        private void BtnCerrarListadoProyectos_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void dgvProyectos_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //celda seleccionada
            DataGridViewCell celdaSelect = dgvProyectos.CurrentCell;
            //fila seleccionada
            DataGridViewRow filaSelect = dgvProyectos.CurrentRow;
            //celda seleccionada
            DataGridViewCell celdaId = dgvProyectos.Rows[filaSelect.Index].Cells[0];
            //identificador del proyecto seleccionado
            int _proyectoId = int.Parse(celdaId.Value.ToString());
            int indiceCeldaSelect = celdaSelect.ColumnIndex;
            // 0 -> ver
            // 1 -> modificar
            // 2 -> asignar cliente
            // 3 -> id
            // 4 -> nombre
            switch (indiceCeldaSelect){
                //si celda seleccionada es 2 -> Delete
                case 1: 
                    
                    break;
                case 2:
                    //si celda seleccionada es 3 -> Edit
                    Proyecto p = (from Proyecto proy in _empresa.Proyectos where proy.Codigo == _proyectoId select proy).First();
                    Proyecto_Definicion ventana;
                    ventana = new Proyecto_Definicion(p, this);
                    ventana.ShowDialog();
                    break;
               
            }
            
             
                 
        }

        private void cbxClienteProyecto_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        private void Proyectos_Listado_Load(object sender, EventArgs e)
        {

        }

        public void actualizar() {
            _cargarGrilla();
        }
    }
}
